<#include "*/component/Tags.ftl"/>
<@Title/>
<@ClassAnnotation>
@Mapper
</@ClassAnnotation>
public interface ${clazz.name} {
${'\t'}${clazz.name} instance = Mappers.getMapper(${clazz.name}.class);

${'\t'}${entity.entityName}ListItemVO to${entity.entityName}ListItemVO(${entity.entityName}ListItemDTO ${entity.objectName}ListItemDTO);

${'\t'}List<${entity.entityName}ListItemVO> to${entity.entityName}ListItemVOList(List<${entity.entityName}ListItemDTO> ${entity.objectName}ListItemDTOList);

${'\t'}ListVo<${entity.entityName}ListItemVO> to${entity.entityName}ListItemVOListVo(ListVo<${entity.entityName}ListItemDTO> ${entity.objectName}ListItemDTOListVo);

${'\t'}${entity.entityName}ProfileVO to${entity.entityName}ProfileVO(${entity.entityName}ProfileDTO ${entity.objectName}ProfileDTO);

${'\t'}List<${entity.entityName}ProfileVO> to${entity.entityName}ProfileVOList(List<${entity.entityName}ProfileDTO> ${entity.objectName}ProfileDTOList);

${'\t'}ListVo<${entity.entityName}ProfileVO> to${entity.entityName}ProfileVOListVo(ListVo<${entity.entityName}ProfileDTO> ${entity.objectName}ProfileDTOListVo);

${'\t'}${entity.entityName} to${entity.entityName}(${entity.entityName}AddForm ${entity.objectName}AddForm);

${'\t'}List<${entity.entityName}> to${entity.entityName}List(List<${entity.entityName}AddForm> ${entity.objectName}AddFormList);

${'\t'}ListVo<${entity.entityName}> to${entity.entityName}ListVo(ListVo<${entity.entityName}AddForm> ${entity.objectName}AddFormListVo);

${'\t'}${entity.entityName}UpdateDTO to${entity.entityName}UpdateDTO(${entity.entityName}UpdateForm ${entity.objectName}UpdateForm);

${'\t'}List<${entity.entityName}UpdateDTO> to${entity.entityName}UpdateDTOList(List<${entity.entityName}UpdateForm> ${entity.objectName}UpdateFormList);

${'\t'}ListVo<${entity.entityName}UpdateDTO> to${entity.entityName}UpdateDTOListVo(ListVo<${entity.entityName}UpdateForm> ${entity.objectName}UpdateFormListVo);

<#list entity.fields as field>
<#if field.condition??>
${'\t'}@Mapping(source = "${field.name}",target = "${field.name}")
</#if>
</#list>
${'\t'}@Mapping(target = "keywordCondition", expression = "java(new ${entity.entityName}ListItemDTO.QueryCondition.KeywordCondition(${entity.objectName}Query.getKeyword()))")
${'\t'}${entity.entityName}ListItemDTO.QueryCondition to${entity.entityName}ListItemDTO_QueryCondition(${entity.entityName}Query ${entity.objectName}Query);
}
